"""
一·
目录结构：
命名规范：
二·类与对象
1.面向对象
    封装，继承，多态
2.类与对象的关系
    类：抽象，模板 例子：人类
    对象：具体，以类为模板 例子：张三
3.类包括哪些，如何描述类
    1）特征（属性/变量）
    2）行为（方法/函数）
"""


# 创建学生类：特征：学号，姓名，行为：学习
# 最基础的类的定义：
# 1）魔法函数：内置的，自动调用，__init__，__str__
#           成员变量或属性在__init__（）完成初始化，要不要参数，参数个数，根据具体来定
# 2）自定义函数：根据具体要求定义，对象去调用
class Student:
    # 每个对象特有的属性，称成员变量，放在__init__函数中去初始化
    # 类似于构造方法，作用是完成初始化
    # python中称魔法函数/方法，有特殊功能的
    # self类似于this，表示当前对象
    def __init__(self, id, name):
        self.id = id
        self.name = name

    # 类似于toString()
    def __str__(self):
        return f'学号：{self.id},姓名：{self.name}'

    # 学习函数
    def study(self):
        print(f'{self.name}努力学习！')


# 以类为模板创建对象实质是调用__init__（）完成初始化
zs = Student(1, 'zhangsan')
# 直接打印对象名的实质是相当于__str__(self)
print(zs.id)
zs.study()
